어느 날, 전설 속에 전해 내려오는 비밀 주문서가 세상에 다시 모습을 드러냈습니다. 이 주문서에는 마법 세계에서 사용되는 모든 주문이 적혀 있는데, 각 주문은 알파벳 소문자 11글자 이하로 구성되어 있습니다. 주문서에는 실제로 마법적 효과를 지니지 않는 의미 없는 주문들 즉, 알파벳 소문자 11글자 이하로 쓸 수 있는 모든 문자열이 고대의 규칙에 따라 아래와 같이 정렬되어 있습니다.
글자 수가 적은 주문부터 먼저 기록된다. 글자 수가 같다면, 사전 순서대로 기록된다. 예를 들어, 주문서의 시작 부분은 다음과 같이 구성됩니다.
"a"→"b"→"c"→"d"→"e"→"f"→...→"z"
→"aa"→"ab"→...→"az"→"ba"→...→"by"→"bz"→"ca"→...→"zz"
→"aaa"→"aab"→...→"aaz"→"aba"→...→"azz"→"baa"→...→"zzz"
→"aaaa"→...→"aazz"→"abaa"→...→"czzz"→"daaa"→...→"zzzz"
→"aaaaa"→...
하지만 이 주문서에는 오래전 봉인된 저주받은 주문들이 숨겨져 있었고, 이를 악용하려는 자들을 막기 위해 마법사들이 몇몇 주문을 주문서에서 삭제했습니다. 당신은 삭제가 완료된 주문서에서 n번째 주문을 찾아내야 합니다.
예를 들어, 주문서에서 “d”, “e”, “bb”, “aa”, “ae” 5개의 주문을 지웠을 때, 주문서에서 30번째 주문을 찾으려고 합니다.
따라서 30번째 주문은 “ah”가 됩니다. 삭제된 주문 중 “bb”와 같이 n번째 주문보다 뒤에 위치해 있어서 n번째 주문을 찾는 데 영향을 주지 않는 주문도 존재할 수 있습니다.
정수 n과 삭제된 주문들을 담은 1차원 문자열 배열 bans가 매개변수로 주어질 때, 삭제가 완료된 주문서의 n번째 주문을 return 하도록 solution 함수를 완성해 주세요.
1 ≤ n ≤ 1015 1 ≤ bans의 길이 ≤ 300,000 bans의 원소는 알파벳 소문자로만 이루어진 길이가 1 이상 11 이하인 문자열입니다. bans의 원소는 중복되지 않습니다.
26진법 변환
return to26String(newN - 1);
Math.floor(number / 26) - 1
과 같이 -1을 해 보완사용 연어: JavaScript
테스트 1 〉 통과 (0.13ms, 33.4MB)
테스트 2 〉 통과 (0.21ms, 33.4MB)
테스트 3 〉 통과 (0.21ms, 33.5MB)
테스트 4 〉 통과 (0.32ms, 33.5MB)
테스트 5 〉 통과 (0.13ms, 33.6MB)
테스트 6 〉 통과 (0.69ms, 33.5MB)
테스트 7 〉 통과 (1.26ms, 33.5MB)
테스트 8 〉 통과 (5.26ms, 36.2MB)
테스트 9 〉 통과 (229.30ms, 86.6MB)
테스트 10 〉 통과 (394.00ms, 92.8MB)
테스트 11 〉 통과 (334.89ms, 91.1MB)
테스트 12 〉 통과 (420.33ms, 94.9MB)
테스트 13 〉 통과 (366.25ms, 96.9MB)
테스트 14 〉 통과 (195.97ms, 92MB)
테스트 15 〉 통과 (410.33ms, 95.6MB)
테스트 16 〉 통과 (411.59ms, 97.1MB)
테스트 17 〉 통과 (425.21ms, 96.7MB)
테스트 18 〉 통과 (581.51ms, 97.2MB)
테스트 19 〉 통과 (606.88ms, 97MB)
테스트 20 〉 통과 (480.10ms, 92MB)
테스트 21 〉 통과 (471.99ms, 95.4MB)
테스트 22 〉 통과 (453.84ms, 96.8MB)
테스트 23 〉 통과 (444.54ms, 95.6MB)
테스트 24 〉 통과 (0.22ms, 33.4MB)
테스트 25 〉 통과 (0.21ms, 33.2MB)
테스트 26 〉 통과 (3.28ms, 36MB)
테스트 27 〉 통과 (3.21ms, 36MB)
테스트 28 〉 통과 (163.14ms, 66.3MB)
테스트 29 〉 통과 (172.68ms, 66.6MB)
감사합니다.
Text by Chaelin. Photographs by Chaelin, Unsplash.